Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2013, 01:26
Новичок на форуме
Отправить личное сообщение для eskimoblueday Посмотреть профиль Найти все сообщения от eskimoblueday
 
Регистрация: 03.07.2013
Сообщений: 8

Не правильно работает регулярка.
Вот часть кода
$("textarea").keypress(function(e){
        switch(e.which){
        // "ENTER"
        case 13:
		var a="content="+$(this).val();
		var str=$("textarea").val();
		var reg=/^http/
		var res=reg.test(str);
		if(res) {$(this).val("");$("ul li:nth-child(2)").load("_addlinks.php",a);}
		 else {$(this).val("");$("ul li:nth-child(1)").load("_addnotes.php",a);};
		
        break;
      
        
        }
    });


При первом нажатии Enter - вовращает true,при последующих - false.
Помогите разобраться в чем беда.
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2013, 02:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var reg=/^http/

Все правильно, у вас регулярка с условием искать в начале строки
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2013, 12:56
Новичок на форуме
Отправить личное сообщение для eskimoblueday Посмотреть профиль Найти все сообщения от eskimoblueday
 
Регистрация: 03.07.2013
Сообщений: 8

Выражение составлено правильно.
Я про то что при повторном срабатывании события keypress:Enter переменная res возвращает FALSE.Вот в этом вся неясность.
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2013, 22:48
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

сделай тестовый пример с возможностью запуска [html run]
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2013, 03:16
Новичок на форуме
Отправить личное сообщение для eskimoblueday Посмотреть профиль Найти все сообщения от eskimoblueday
 
Регистрация: 03.07.2013
Сообщений: 8

index.html

$("textarea").keypress(function(e){
        switch(e.which){
        // "ENTER"
        case 13:
		var a="content="+$(this).val();
		var str=$(this).val();
		var reg=/^http/;
		var res=reg.test(str);
		if(res) {$(this).val("");$("ul li:nth-child(2) sup").load("_addlinks.php",a);}
		 else {$(this).val("");$("ul li:nth-child(1) sup").load("_addnotes.php",a);}
		
        break;


_addlink.php

<?php
@session_start();
$login=$_SESSION['user_id'];
@$links=$_GET['content'];
mysql_connect("localhost","root","");
mysql_select_db("collection");
$result=mysql_query("INSERT INTO $login(links) VALUES('$links')");
if($result==0) {echo ":(";}
else {
$aq=mysql_query("SELECT id FROM $login WHERE links<>''" );
$k=0;
while($row=mysql_fetch_assoc($aq))
{
if($row['id']) {$k++;}}

echo $k;
} 
?>


_addnotes.php

<?php
@session_start();
$login=$_SESSION['user_id'];
@$notes=$_GET['content'];
mysql_connect("localhost","root","");
mysql_select_db("collection");
$result=mysql_query("INSERT INTO $login(notes) VALUES('$notes')");
if($result==0) {echo ":(";}
else {
$aq=mysql_query("SELECT id FROM $login WHERE notes<>''" );
$n=0;
while($row=mysql_fetch_assoc($aq))
{
if($row['id']) {$n++;}}

echo $n;
}
?>


Проблема решилась заменой рег. на другую,а именно - /http*/ .Очень странно,должно быть сферический RegExp в вакууме,кто знает...

Последний раз редактировалось eskimoblueday, 07.07.2013 в 04:05. Причина: решение проблемы
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2013, 07:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

eskimoblueday,
Пример:
<input id="text" type="text" value="Пока пустой"/><input type="button" value="Показать" onclick="AlertInp('text')"/>
<script type="text/javascript">
function AlertInp(inp) {
   alert(document.getElementById(inp).value)

}
</script>

Cм. http://javascript.ru/formatting
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена значения в store страно работает I3ev ExtJS 0 09.12.2012 14:22
Скрипт правильно работает только один раз, после начинает выдавать ошибку. xodock Events/DOM/Window 2 23.07.2012 13:04
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
ajax запросы, работает на одних компах и не работает на других vtornik23 AJAX и COMET 2 22.03.2010 18:22
в IE работает в Opera и FF не работает Yadooumne! Общие вопросы Javascript 14 10.03.2009 23:23